from typing import Text


class RasaException(Exception):
    """Rasa引发的所有错误的base异常类。"""


class ModelNotFound(RasaException):
    """在用户提供的路径中找不到模型时引发。"""


class NoEventsToMigrateError(RasaException):
    """在未找到要迁移的事件时引发。"""


class NoConversationsInTrackerStoreError(RasaException):
    """当跟踪器的存储不包含任何对话时引发。"""


class NoEventsInTimeRangeError(RasaException):
    """当跟踪器的存储不包含给定时间范围内的事件时引发。"""


class PublishingError(RasaException):
    """发布事件失败时引发。

    Attributes:
        timestamp -- 发布失败期间事件的Unix时间戳
    """

    def __init__(self, timestamp: float) -> None:
        self.timestamp = timestamp

    def __str__(self) -> Text:
        return str(self.timestamp)
